#ifndef DBMANAGER_H
#define DBMANAGER_H

#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <global.h>

class DbManager
{
public:
    DbManager();
    ~DbManager();

    // 获取用户列表 包括用户id，名称，密码，状态（是否在线）
    QList<User> getUserList();
    QList<Friend> getFriendList();

    // 插入user
    bool insertUser(const User &u);

    // 更新user
    bool updateUser(const User &u);

    // 获取聊天历史记录
    QList<ChatHistory> getChatHistory(int user_one_id,int user_two_id);

    // 插入聊天记录
    bool insertChatHistory(int sender_id,int receiver_id,MessageType messageType,QString message);

    QList<Friend> getFriendList(int userId);

    bool insertFriendRelation(int user_one_id, int user_two_id);

    // 删除好友关系
    bool deleteFriendRelation(int user_one_id,int user_two_id);

    User getUserInformation(int user_id);

    QList<Friend> getAllFriend();

    void printAllUser();

private:
    QSqlDatabase db;
    // 初始化数据库，检查数据表
    void init();
};

#endif // DBMANAGER_H
